<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Model\HomeUserLoginAnnal;
use App\Http\Controllers\Controller;

class HomeUserCache extends Controller
{
    /**
     * 用户登录记录方法
     * data $uid 
     * @return loginnember 登录次数
     */
    public function LoginAnnal($uid)
    {
        // 找到该用户登录记录
        $loginannal = HomeUserLoginAnnal::where('user_id', $uid)->first();
        // 准备一个初始化登录记录的变量
        $clear = 1;
        // 准备一个与最后登录时间比较的时间
        $monthinital = date('Y-m').'-0';
        // 准备一个记录登录的时间
        $time = date('Y-m-d');

        // 判断该用户是否第一场次登录
        if ($loginannal) {
            // 准备一个添加登录记录的变量
            $loginnumber = $loginannal->loginnumber + 1;

            // 判断在最后一次登录时间是否是在本月
            if ($loginannal->lastlogintime > $monthinital) {
                // 找出最后一次登录时间在本月之内并且userid对应uid的数据
                HomeUserLoginAnnal::where('user_id', $uid)
                  ->update([
                      'lastlogintime' => $time,
                      'loginnumber'   => $loginnumber,
                  ]);
                // 返回登录次数
                return $loginnumber;
            } else {
                // 当最后一次登录时间不是当前的月份，而是上个月的时候，将重新计算用户的登录次数
                HomeUserLoginAnnal::where('user_id', $uid)
                  ->update([
                      'lastlogintime' => $time,
                      'loginnumber'   => $clear,
                  ]);
                // 返回登录次数
                return $clear;
            }
        } else {
            // 给该用户创建记录表
            HomeUserLoginAnnal::insert(
                [
                    'user_id'       => $uid,
                    'lastlogintime' => $time,
                    'loginnumber'   => $clear,
                ]
            );
            // 返回登录次数
            return $clear;
        }
    }
}
